package com.zhuiyun.project.api.equipment.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhuiyun.project.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.Id;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @ClassName EquipmentModel
 * @Description TODO
 * @Author lpr
 * @Date 2023/11/8 15:26
 **/
@ApiModel("器材模型类")
@Data
public class EquipmentModel extends BaseEntity {
    /**
     * 器材编号 主键id 创建人刘彭瑞
     */
    @ApiModelProperty("器材编号")
    private Integer ementId;
    /**
     * 器材名称
     */
    @ApiModelProperty("器材名称")
    @NotBlank(message = "器材名称不能为空")
    private String ementName;
    /**
     * 器材品牌
     */
    @ApiModelProperty("器材品牌")
    @NotNull(message = "器材品牌不能为空")
    private String ementBrand;
    /**
     * 器材型号
     */
    @ApiModelProperty("器材型号")
    @NotNull(message = "器材型号不能为空")
    private String ementModel;
    /**
     * 器材数量
     */
    @ApiModelProperty("器材数量")
    @NotNull(message = "器材数量不能为空")
    private String ementQuantity;
    /**
     * 器材长度
     */
    @ApiModelProperty("器材长度")
    @NotNull(message = "器材长度不能为空")
    private BigDecimal ementLength;
    /**
     * 器材宽度
     */
    @ApiModelProperty("器材宽度")
    @NotNull(message = "器材宽度不能为空")
    private BigDecimal ementWidth;
    /**
     * 器材高度
     */
    @ApiModelProperty("器材高度")
    @NotNull(message = "器材高度不能为空")
    private BigDecimal ementHeight;
    /**
     * 器材状态（1正常、2故障、3维修、4报废）
     */
    @ApiModelProperty("器材状态")
    @NotNull(message = "器材状态不能为空")
    private String ementStatus;
    /**
     * 是否显示（1显示、2不显示）
     */
    @ApiModelProperty("是否显示")
    @NotNull(message = "是否显示不能为空")
    private String display;
    /**
     * 器材照片
     **/
    @ApiModelProperty("器材照片")
    private String ementPhoto;
    /**
     * 添加时间
     */
    @ApiModelProperty("添加时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    private Date createTime;
    /**
     * 报废时间
     */
    @ApiModelProperty("报废时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    private Date scrapTime;
    /**
     * 报废原因
     */
    @ApiModelProperty("报废原因")
    private String reason;
    /**
     * 关联场站编号
     */
    @ApiModelProperty("关联场站编号")
    @NotNull(message = "关联场站编号不能为空")
    private Integer stationId;
    /**
     * 关联场站编号
     */
    @ApiModelProperty("关联场站编号")
    @NotNull(message = "关联场站编号不能为空")
    private String venueUniqueIdentifier;
    /**
     * 场馆名称
     */
    @ApiModelProperty("场馆名称")
    @TableField(exist = false)
    private String venueName;
}
